﻿// Brackets POJ - 2955.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>


/*
https://vjudge.net/problem/POJ-2955#author=GPT_zh

我们给出“正则括号”序列的归纳定义如下：

空序列是一个正则括号序列，
如果s是一个正则括号序列，那么(s)和[s]也是正则括号序列，
如果a和b是正则括号序列，那么ab也是正则括号序列。
没有其他序列是正则括号序列。
例如，以下所有字符序列都是正则括号序列：

(), [], (()), ()[], ()[()]

而以下字符序列则不是：

(, ], )(, ([)], ([(]

给定一个字符括号序列 a1a2 … an，你的目标是找到最长的正则括号序列的长度，该序列是 s 的子序列。也就是说，你希望找到最大的 m，使得对于索引 i1, i2, …, im，其中 1 ≤ i1 < i2 < … < im ≤ n，ai1ai2 … aim 是一个正则括号序列。

给定初始序列 ([([]])]，最长的正则括号子序列是 [([])]。

输入
输入测试文件将包含多个测试用例。每个输入测试包含一行，只包含字符 (, ), [, 和 ]；每个输入测试的长度在1到100之间，包括1和100。文件以包含单词“end”的行作为结尾，不应进行处理。

输出
对于每个输入情况，程序应该在一行上打印最长可能的正则括号子序列的长度。

((()))
()()()
([]])
)[)(
([][][)
end

6
6
4
0
6

*/
int main()
{
    std::cout << "Hello World!\n";
}

 